package persistent.impl;

import java.util.List;

import basic.HibBaseDAO;
import model.TFrontPsyConsulatationTeacher;
import model.VFrontPsyConsultationTeacher;
import persistent.dao.FrontExpertDAO;

/**
 * 网站前端专家信息业务类接口的实现
 * @author djf
 * @since 2018/12/12
 */
public class FrontExpertImpl implements FrontExpertDAO {
	
	private HibBaseDAO dao=null;

	public FrontExpertImpl() {
		dao=new HibBaseDAO();
	}

	/**
	 * 添加一个网站专家信息
	 * @param frontexpert 专家信息用户对象
	 * @return 成功返回true，失败返回false
	 */
	@Override
	public boolean addFrontExpert(TFrontPsyConsulatationTeacher frontexpert) {
		int row=dao.insert(frontexpert);
		if(row>0){
			return true;
		}else{
			return false;
		}
	}

	/**
	 * 删除一个网站专家信息(真删除)
	 * @param psyid 专家信息id
	 * @return 成功返回true，失败返回false
	 */
	@Override
	public boolean deleteFrontExpert(int psyid) {
		return dao.delete(TFrontPsyConsulatationTeacher.class,psyid);
	}

	/**
	 * 修改一个专家信息
	 * @param frontexpert 专家信息对象
	 * @return 成功返回true，失败返回false
	 */
	@Override
	public boolean updateFrontExpert(TFrontPsyConsulatationTeacher frontexpert) {
		TFrontPsyConsulatationTeacher frontexpert2=(TFrontPsyConsulatationTeacher)dao.findById(
				TFrontPsyConsulatationTeacher.class, frontexpert.getPsyid());
		frontexpert2.setRealname(frontexpert.getRealname());
		frontexpert2.setSex(frontexpert.getSex());
		frontexpert2.setPhone(frontexpert.getPhone());
		frontexpert2.setDescribe(frontexpert.getDescribe());
		frontexpert2.setPhotoid(frontexpert.getPhotoid());
		frontexpert2.setQq(frontexpert.getQq());
		frontexpert2.setBirthday(frontexpert.getBirthday());
		return dao.update(frontexpert2);
	}

	/**
	 * 根据专家信息id，得到一个专家信息对象
	 * @param psyid 专家信息id
	 * @return 成功返回专家信息列表，失败返回null
	 */
	@Override
	public TFrontPsyConsulatationTeacher getAFrontExpert(int psyid) {
		return (TFrontPsyConsulatationTeacher)dao.findById(
				TFrontPsyConsulatationTeacher.class, psyid);
	}
	
	/**
	 * 根据专家信息id，得到一个VFrontPsyConsultationTeacher专家信息对象
	 * @param psyid 专家信息id
	 * @return 成功返回专家信息列表，失败返回null
	 */
	@Override
	public VFrontPsyConsultationTeacher getVFrontPsyConsultationTeacher(
			int psyid) {
		return (VFrontPsyConsultationTeacher)dao.findById(
				VFrontPsyConsultationTeacher.class, psyid);
	}

	/**
	 * 根据查询条件得到一个专家信息列表
	 * @param strwhere 查询条件
	 * @return 成功返回专家信息列表，失败返回null
	 */
	@Override
	public List<VFrontPsyConsultationTeacher> getFrontExpertList(
			String strwhere) {
		String hql="from VFrontPsyConsultationTeacher "+strwhere;
		return dao.select(hql);
	}

	/**
	 * 根据查询条件得到一个专家信息列表(带分页)
	 * @param strwhere 查询条件
	 * @param currentPage 当前页
	 * @param pageSize 每页数
	 * @return 成功返回专家信息列表，失败返回null
	 */
	@Override
	public List<VFrontPsyConsultationTeacher> getFrontExpertList(
			String strwhere, int currentPage, int pageSize) {
		String hql="from VFrontPsyConsultationTeacher "+strwhere;
		return dao.selectByPage(hql, currentPage, pageSize);
	}

}
